iterator - vertaling naar russisch
Diclib.com
Online Woordenboek

iterator - vertaling naar russisch

ШАБЛОН ПРОЕКТИРОВАНИЯ
Iterator

iterator         
IN COMPUTING, AN OBJECT WHOSE METHODS ENABLES A PROGRAM TO ORDERLY TRAVERSE ELEMENTS HAVING SOME LOGICAL CONDITIONS IN A GIVEN CONTAINER FROM A GIVEN FIRST ELEMENT
Iterators; IteratorAggregate; Iterator (C++); IEnumerable; External iterator; Internal iterators; Comparison of programming languages (iterators)

общая лексика

периодизатор

итеративный      
adj.
iterated, repeated, iterative
итерационный      
adj.
iterated, repeated, iterative; итерационный цикл, iterative loop

Definitie

iterator
<programming> An object or routine for accessing items from a list, array or stream one at a time. By extension, the term can be used for an object or routine for accesing items from any data structure that can be viewed as a list. For example, a traverser is an iterator for tree-shaped data structures. (2001-10-04)

Wikipedia

Итератор (шаблон проектирования)

Iterator — поведенческий шаблон проектирования. Представляет собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого из агрегированных объектов.

Например, такие элементы как дерево, связанный список, хеш-таблица и массив могут быть пролистаны (и модифицированы) с помощью объекта Итератор.

Перебор элементов выполняется объектом итератора, а не самой коллекцией. Это упрощает интерфейс и реализацию коллекции, а также способствует более логичному разделению обязанностей.

Особенностью полноценно реализованного итератора является то, что код, использующий итератор, может ничего не знать о типе итерируемого агрегата.

Конечно же, (в C++) почти в любом агрегате можно выполнять итерации указателем void*, но при этом:

  • не ясно, что является значением «конец агрегата», для двусвязного списка это &ListHead, для массива это &array[size], для односвязного списка это NULL
  • операция Next сильно зависит от типа агрегата.

Итераторы позволяют абстрагироваться от типа и признака окончания агрегата, используя полиморфный Next (часто реализованный как operator++ в C++) и полиморфный aggregate.end(), возвращающий значение «конец агрегата».

Таким образом, появляется возможность работы с диапазонами итераторов, при отсутствии знания о типе итерируемого агрегата. Например:

И далее: